﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Kaidou.Model
{
    public class Order
    {
        private TrnJuchuh juchu_h = null;
	    private TrnJuchud[] juchu_d = null;
	    private string[] trader_no = null;

	    /**
	     *本クラスのデフォルトコンストラクタで、メンバ変数を初期化します。
	     */
	    public Order() {
		    // juchu_dの初期化
		    juchu_d = new TrnJuchud[5];
		    for (int i = 0; i < 5; i++) {
			    juchu_d[i] = null;
		    }

		    // trader_noの初期化
		    trader_no = new string[4];
		    for (int i = 0; i < 4; i++) {
			    trader_no[i] = null;
		    }
	    }

	    /**
	     * TRN_Juchu_Hのデータモデルを設定する
	     * @param juchu_h TRN_Juchu_Hのデータモデル
	     */
	    public void setJuchu_H(TrnJuchuh juchu_h) {
		    this.juchu_h = juchu_h;
	    }

	    /**
	     * TRN_Juchu_Hのデータモデルを取得する
	     * @return TRN_Juchu_H TRN_Juchu_Hのデータモデル
	     */
        public TrnJuchuh getJuchu_H()
        {
		    return this.juchu_h;
	    }

	    /**
	     * TRN_Juchu_D[]を設定する
	     * @param juchu_d TRN_Juchu_Dのデータモデルlist
	     */
	    public void setJuchu_D(TrnJuchud[] juchu_d) {
		    this.juchu_d = juchu_d;
	    }

	    /**
	     * TRN_Juchu_D[]を取得する
	     * @return TRN_Juchu_D[]
	     */
	    public TrnJuchud[] getJuchu_D() {
		    return this.juchu_d;
	    }

	    /**
	     * 注文シールの合計枚数（印字なし枚数 + 印字枚数）を取得する
	     * @return int 合計枚数
	     */
	    public int getTotal_seal_qty() {
		    int count = 0;
		    for (int i = 0; i < 5; i++) {
			    if (juchu_d[i] == null)
				    continue;
                TrnJuchud trn_juchu_d = juchu_d[i];
			    count += trn_juchu_d.SealQty;
		    }
		    return count;
	    }

	    /**
	     * 印字登録証番号を取得する
	     * @return String[] 登録証番号
	     */
        public string[] getTrader_no()
        {
		    for (int i = 1; i < 5; i++) {
			    if (juchu_d[i] == null)
				    continue;
                TrnJuchud trn_juchu_d = juchu_d[i];
			    trader_no[i - 1] = trn_juchu_d.TraderRegNo;
		    }
		    return this.trader_no;
	    }
    }
}
